Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Inference engine</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Inference_engine"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Inference_engine rootpage-Inference_engine skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Inference engine</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>In the field of <a href="Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a>, an <b>inference engine</b> is a <a href="Software_component" title="Software component">software component</a> of an intelligent system that applies logical rules to the <a href="Knowledge_base" title="Knowledge base">knowledge base</a> to deduce new information. The first inference engines were components of <a href="Expert_system" title="Expert system">expert systems</a>. The typical expert system consisted of a knowledge base and an inference engine. The knowledge base stored facts about the world. The inference engine applied logical rules to the knowledge base and deduced new knowledge. This process would iterate as each new fact in the knowledge base could trigger additional rules in the inference engine. Inference engines work primarily in one of two modes either special rule or facts: <a href="Forward_chaining" title="Forward chaining">forward chaining</a> and <a href="Backward_chaining" title="Backward chaining">backward chaining</a>. Forward chaining starts with the known facts and asserts new facts. Backward chaining starts with goals, and works backward to determine what facts must be asserted so that the goals can be achieved.<sup id="cite_ref-Hayes-Roth_1983_1-0" class="reference"><a href="#cite_note-Hayes-Roth_1983-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Additionally, the concept of 'inference' has expanded to include the process through which trained <a href="Artificial_neural_network" class="mw-redirect" title="Artificial neural network">neural networks</a> generate predictions or decisions. In this context, an 'inference engine' could refer to the specific part of the system, or even the hardware, that executes these operations. This type of inference plays a crucial role in various applications, including (but not limited to) <a href="Image_recognition" class="mw-redirect" title="Image recognition">image recognition</a>, <a href="Natural_language_processing" title="Natural language processing">natural language processing</a>, and <a href="Autonomous_vehicles" class="mw-redirect" title="Autonomous vehicles">autonomous vehicles</a>. The inference phase in these applications is typically characterized by a high volume of data inputs and real-time processing requirements.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Architecture">Architecture</h2></div>
<p>The logic that an inference engine uses is typically represented as IF-THEN rules. The general format of such rules is IF &lt;logical expression&gt; THEN &lt;logical expression&gt;. Prior to the development of expert systems and inference engines, artificial intelligence researchers focused on more powerful <a href="Theorem-prover" class="mw-redirect" title="Theorem-prover">theorem prover</a> environments that offered much fuller implementations of <a href="First-order_logic" title="First-order logic">first-order logic</a>. For example, general statements that included <a href="Universal_quantification" title="Universal quantification">universal quantification</a> (for all X some statement is true) and <a href="Existential_quantification" title="Existential quantification">existential quantification</a> (there exists some X such that some statement is true). What researchers discovered is that the power of these theorem-proving environments was also their drawback. Back in 1965, it was far too easy to create logical expressions that could take an indeterminate or even infinite time to terminate. For example, it is common in universal quantification to make statements over an infinite set such as the set of all natural numbers. Such statements are perfectly reasonable and even required in mathematical proofs but when included in an automated theorem prover executing on a computer may cause the computer to fall into an infinite loop. Focusing on IF-THEN statements (what logicians call <i><a href="Modus_ponens" title="Modus ponens">modus ponens</a></i>) still gave developers a very powerful general mechanism to represent logic, but one that could be used efficiently with computational resources. What is more, there is some psychological research that indicates humans also tend to favor IF-THEN representations when storing complex knowledge.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>A simple example of <i>modus ponens</i> often used in introductory logic books is "If you are human then you are mortal". This can be represented in <a href="Pseudocode" title="Pseudocode">pseudocode</a> as:
</p>
<pre>Rule1: Human(x) =&gt; Mortal(x)
</pre>
<p>A trivial example of how this rule would be used in an inference engine is as follows. In <i>forward chaining</i>, the inference engine would find any facts in the knowledge base that matched Human(x) and for each fact it found would add the new information Mortal(x) to the knowledge base. So if it found an object called Socrates that was human it would deduce that Socrates was mortal. In <i>backward chaining</i>, the system would be given a goal, e.g. answer the question is Socrates mortal? It would search through the knowledge base and determine if Socrates was human and, if so, would assert he is also mortal. However, in backward chaining a common technique was to integrate the inference engine with a user interface. In that way, rather than simply being automated the system could now be interactive. In this trivial example, if the system was given the goal to answer the question if Socrates was mortal and it didn't yet know if he was human, it would generate a window to ask the user the question "Is Socrates human?" and would then use that information accordingly.
</p><p>This innovation of integrating the inference engine with a user interface led to the second early advancement of expert systems: explanation capabilities. The explicit representation of knowledge as rules rather than code made it possible to generate explanations to users: both explanations in real time and after the fact. So if the system asked the user "Is Socrates human?", the user may wonder why she was being asked that question and the system would use the chain of rules to explain why it was currently trying to ascertain that bit of knowledge: that is, it needs to determine if Socrates is mortal and to do that needs to determine if he is human. At first these explanations were not much different than the standard debugging information that developers deal with when debugging any system. However, an active area of research was utilizing natural language technology to ask, understand, and generate questions and explanations using natural languages rather than computer formalisms.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>An inference engine cycles through three sequential steps: <i>match rules</i>, <i>select rules</i>, and <i>execute rules</i>. The execution of the rules will often result in new facts or goals being added to the knowledge base, which will trigger the cycle to repeat. This cycle continues until no new rules can be matched.
</p><p>In the first step, <i>match rules</i>, the inference engine finds all of the rules that are triggered by the current contents of the knowledge base. In forward chaining, the engine looks for rules where the antecedent (left hand side) matches some fact in the knowledge base. In backward chaining, the engine looks for antecedents that can satisfy one of the current goals.
</p><p>In the second step, <i>select rules</i>, the inference engine prioritizes the various rules that were matched to determine the order to execute them. In the final step, <i>execute rules</i>, the engine executes each matched rule in the order determined in step two and then iterates back to step one again. The cycle continues until no new rules are matched.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementations">Implementations</h2></div>
<p>Early inference engines focused primarily on forward chaining. These systems were usually implemented in the <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a> programming language. Lisp was a frequent platform for early AI research due to its strong capability to do symbolic manipulation. Also, as an <a href="Interpreted_language" class="mw-redirect" title="Interpreted language">interpreted language</a> it offered productive development environments appropriate to <a href="Debugging" title="Debugging">debugging</a> complex programs. A necessary consequence of these benefits was that Lisp programs tended to be slower and less robust than compiled languages of the time such as <a href="C_(programming_language)" title="C (programming language)">C</a>. A common approach in these early days was to take an expert system application and repackage the inference engine used for that system as a re-usable tool other researchers could use for the development of other expert systems. For example, <a href="MYCIN" class="mw-redirect" title="MYCIN">MYCIN</a> was an early expert system for medical diagnosis and EMYCIN was an inference engine extrapolated from MYCIN and made available for other researchers.<sup id="cite_ref-Hayes-Roth_1983_1-1" class="reference"><a href="#cite_note-Hayes-Roth_1983-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>As expert systems moved from research prototypes to deployed systems there was more focus on issues such as speed and robustness. One of the first and most popular forward chaining engines was <a href="OPS5" title="OPS5">OPS5</a>, which used the <a href="Rete_algorithm" title="Rete algorithm">Rete algorithm</a> to optimize the efficiency of rule firing. Another very popular technology that was developed was the <a href="Prolog" title="Prolog">Prolog</a> logic programming language. Prolog focused primarily on backward chaining and also featured various commercial versions and optimizations for efficiency and robustness.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>As expert systems prompted significant interest from the business world, various companies, many of them started or guided by prominent AI researchers created productized versions of inference engines. For example, <a href="IntelliCorp_(software)" class="mw-redirect" title="IntelliCorp (software)">Intellicorp</a> was initially guided by <a href="Edward_Feigenbaum" title="Edward Feigenbaum">Edward Feigenbaum</a>. These inference engine products were also often developed in Lisp at first. However, demands for more affordable and commercially viable platforms eventually made <a href="Personal_computer" title="Personal computer">personal computer</a> platforms very popular.
</p>
<div class="mw-heading mw-heading3"><h3 id="Open_source_implementations">Open source implementations</h3></div>
<p><a rel="nofollow" class="external text" href="https://clipsrules.net/">ClipsRules</a> and <a rel="nofollow" class="external text" href="http://refpersys.org">RefPerSys</a> (inspired by <a rel="nofollow" class="external text" href="https://github.com/bstarynk/caia-pitrat">CAIA</a><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and the work of <a href="Jacques_Pitrat" title="Jacques Pitrat">Jacques Pitrat</a>). The <a rel="nofollow" class="external text" href="https://frama-c.com/">Frama-C</a> static source code analyzer also uses some inference engine techniques.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Geometric_and_Topological_Inference" title="Geometric and Topological Inference">Geometric and Topological Inference</a></li>
<li><a href="Action_selection" title="Action selection">Action selection</a></li>
<li><a href="Backward_chaining" title="Backward chaining">Backward chaining</a></li>
<li><a href="Expert_system" title="Expert system">Expert system</a></li>
<li><a href="Forward_chaining" title="Forward chaining">Forward chaining</a></li>
<li><a href="Inductive_inference" class="mw-redirect" title="Inductive inference">Inductive inference</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Hayes-Roth_1983-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-Hayes-Roth_1983_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Hayes-Roth_1983_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFHayes-RothDonald_WatermanDouglas_Lenat1983" class="citation book cs1">Hayes-Roth, Frederick; Donald Waterman; Douglas Lenat (1983). <a rel="nofollow" class="external text" href="https://archive.org/details/buildingexpertsy00temd"><i>Building Expert Systems</i></a>. Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-201-10686-8</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFFeigenbaumAvron_Barr1986" class="citation book cs1">Feigenbaum, Edward; Avron Barr (September 1, 1986). <a rel="nofollow" class="external text" href="https://archive.org/stream/handbookofartific01barr#page/156/mode/2up"><i>The Handbook of Artificial Intelligence, Volume I</i></a>. Addison-Wesley. p.&nbsp;195. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0201118114</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFBarzilaytDaryl_McCulloughOwen_RambowJonathan_DeCristofaro" class="citation journal cs1">Barzilayt, Regina; Daryl McCullough; Owen Rambow; Jonathan DeCristofaro; Tanya Korelsky; Benoit Lavoie. <a rel="nofollow" class="external text" href="https://apps.dtic.mil/sti/pdfs/ADA457707.pdf">"A New Approach to Expert System Explanations"</a> <span class="cs1-format">(PDF)</span>. <i>USAF Rome Laboratory Report</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160705225736/http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA457707">Archived</a> from the original on July 5, 2016.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFGriffin" class="citation cs2">Griffin, N.L., <i>A Rule-Based Inference Engine which is Optimal and VLSI Implementable</i>, University of Kentucky.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFSterlingEhud_Shapiro1986" class="citation book cs1">Sterling, Leon; Ehud Shapiro (1986). <a rel="nofollow" class="external text" href="https://archive.org/details/artofprologadvan00ster"><i>The Art of Prolog</i></a>. Cambridge, MA: MIT. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-262-19250-0</bdi>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFPitrat2009" class="citation book cs1">Pitrat, Jacques (2009). <i>Artificial Beings, the conscience of a conscious machine</i>. Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1848211018</bdi>.</cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" ยท ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-label="Navbox391" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4284158-6">Germany</a></span></li></ul></div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Knowledge_representation_and_reasoning511" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Knowledge_representation_and_reasoning511" style="font-size:114%;margin:0 4em"><a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">Knowledge representation</a> and <a href="Automated_reasoning" title="Automated reasoning">reasoning</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Backward_chaining" title="Backward chaining">Backward chaining</a></li>
<li><a href="Case-based_reasoning" title="Case-based reasoning">Case-based reasoning</a></li>
<li><a href="Commonsense_reasoning" title="Commonsense reasoning">Commonsense reasoning</a></li>
<li><a href="Forward_chaining" title="Forward chaining">Forward chaining</a></li>
<li><a href="Model-based_reasoning" title="Model-based reasoning">Model-based reasoning</a></li>

<li><a href="Proof_assistant" title="Proof assistant">Proof assistants</a></li>
<li><a href="Knowledge_engineering" title="Knowledge engineering">Knowledge engineering</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Expert_system" title="Expert system">Expert systems</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CLIPS" title="CLIPS">CLIPS</a></li>
<li><a href="Connectionist_expert_system" title="Connectionist expert system">Connectionist expert systems</a></li>
<li><a href="Expert_systems_for_mortgages" title="Expert systems for mortgages">Expert systems for mortgages</a></li>
<li><a href="Legal_expert_system" title="Legal expert system">Legal expert systems</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Reasoning_system#Types_of_reasoning_system" title="Reasoning system">Reasoning systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Automated_theorem_proving" title="Automated theorem proving">Theorem provers</a></li>
<li><a href="Constraint_programming" title="Constraint programming">Constraint solvers</a></li>
<li><a href="Deductive_classifier" title="Deductive classifier">Deductive classifiers</a></li>
<li><a href="Logic_programming" title="Logic programming">Logic programs</a></li>
<li><a href="Procedural_reasoning_system" title="Procedural reasoning system">Procedural reasoning systems</a></li>
<li><a href="Rule_engine" class="mw-redirect" title="Rule engine">Rule engines</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Ontology_language" title="Ontology language">Ontology languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Attempto_Controlled_English" title="Attempto Controlled English">Attempto Controlled English</a></li>
<li><a href="CycL" title="CycL">CycL</a></li>
<li><a href="F-logic" title="F-logic">F-logic</a></li>
<li><a href="FO(.)" title="FO(.)">FO(.)</a></li>
<li><a href="Knowledge_Interchange_Format" title="Knowledge Interchange Format">Knowledge Interchange Format</a></li>
<li><a href="Web_Ontology_Language" title="Web Ontology Language">Web Ontology Language</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Theorem provers</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CARINE" title="CARINE">CARINE</a></li>
<li><a href="E_(theorem_prover)" title="E (theorem prover)">E</a></li>
<li><a href="Nqthm" title="Nqthm">Nqthm</a></li>
<li><a href="Otter_(theorem_prover)" title="Otter (theorem prover)">Otter</a></li>
<li><a href="Paradox_(theorem_prover)" title="Paradox (theorem prover)">Paradox</a></li>
<li><a href="Prover9" title="Prover9">Prover9</a></li>
<li><a href="SPASS" title="SPASS">SPASS</a></li>
<li><a href="Theorem_Proving_System" class="mw-redirect" title="Theorem Proving System">TPS</a></li>
<li><a href="Z3_Theorem_Prover" title="Z3 Theorem Prover">Z3</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Constraint_satisfaction" title="Constraint satisfaction">Constraint satisfaction</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Constraint_programming" title="Constraint programming">Constraint programming</a></li>
<li><a href="Constraint_logic_programming" title="Constraint logic programming">Constraint logic programming</a></li>
<li><a href="Local_consistency" title="Local consistency">Local consistency</a></li>
<li><a href="Satisfiability_modulo_theories" title="Satisfiability modulo theories">SMT solvers</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Automated_planning_and_scheduling" title="Automated planning and scheduling">Automated planning</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Motion_planning" title="Motion planning">Motion planning</a></li>
<li><a href="Multi-agent_planning" title="Multi-agent planning">Multi-agent planning</a></li>
<li><a href="Partial-order_planning" title="Partial-order planning">Partial-order planning</a></li>
<li><a href="Preference-based_planning" title="Preference-based planning">Preference-based planning</a></li>
<li><a href="Reactive_planning" title="Reactive planning">Reactive planning</a></li>
<li><a href="State-space_planning" title="State-space planning">State-space planning</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-04" href="https://en.wikipedia.org/wiki/?title=Inference_engine&amp;oldid=1304105995">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>